package 第八章this;

//需求
//    主方法中编写完整、省略程序调用method1、2
//    在method1调用dosome、doother、访问i
//    在method2调用dosome、doother、访问i
public class ThisTest05 {
    //没有static变量
    int i = 10;

    //带有static方法
    public static void dosome() {
        System.out.println("dosome");
    }

    //有static方法
    public static void method1() {
        //完整方式
        ThisTest05 t2 = new ThisTest05();
        t2.doother();

        //省略方式
        dosome();
        //完整方式
        ThisTest05.dosome();

        //完整方式
        System.out.println(t2.i)
        ;
    }

    //主方法
    public static void main(String[] args) {
        //省略方式调用
        method1();
        //完整方式调用
        ThisTest05.method1();

        //完整方式调用
        ThisTest05 t2 = new ThisTest05();
        t2.method2();
        System.out.println(t2.i);

        t2.doother();

        //带有static的方法，可以采用类名的方式访问，也可以采用引用的方式访问
        //但是即使采用引用的方式访问，实际上执行的时候和引用指向的对象无关，所以建议采用类名访问
        ThisTest05.dosome();
        dosome();
        t2 = null;
        dosome();
        dosome();

    }

    //没有static方法
    public void doother() {
        System.out.println("do other");
    }

    //没有static方法
    public void method2() {
        //完整方式
        ThisTest05.dosome();
        //省略方式
        dosome();

        //省略方式
        doother();
        //完整方式
        this.doother();
        //省略
        System.out.println(i);
        //完整
        System.out.println(this.i);
    }


}
